0 JBC
↳1 JBC2FIG (⇒)
↳2 JBCTerminationGraph
↳3 FIGtoITRSProof (⇒)
↳4 IDP
↳5 IDPNonInfProof (⇒)
↳6 AND
↳7 IDP
↳8 IDependencyGraphProof (⇔)
↳9 TRUE
↳10 IDP
↳11 IDependencyGraphProof (⇔)
↳12 TRUE
public class Fibonacci {
public static void main(String[] args) {
fib(args.length);
}
public static int fib(int x) {
if (x == 0) {
return 0;
} else if (x == 1) {
return 1;
} else {
return fib(x-1) + fib(x-2);
}
}
}
Generated 27 rules for P and 17 rules for R.
Combined rules. Obtained 3 rules for P and 4 rules for R.
Filtered ground terms:
27_0_fib_NE(x1, x2, x3) → 27_0_fib_NE(x2, x3)
390_0_fib_Return(x1, x2) → 390_0_fib_Return(x2)
Cond_87_1_fib_InvokeMethod(x1, x2, x3, x4) → Cond_87_1_fib_InvokeMethod(x1, x3)
63_0_fib_Return(x1, x2, x3) → 63_0_fib_Return
Cond_27_0_fib_NE(x1, x2, x3, x4) → Cond_27_0_fib_NE(x1, x3, x4)
Cond_374_1_fib_InvokeMethod1(x1, x2, x3, x4) → Cond_374_1_fib_InvokeMethod1(x1, x3)
Cond_374_1_fib_InvokeMethod(x1, x2, x3, x4) → Cond_374_1_fib_InvokeMethod(x1, x3)
39_0_fib_Return(x1, x2, x3) → 39_0_fib_Return
Filtered duplicate args:
27_0_fib_NE(x1, x2) → 27_0_fib_NE(x2)
Cond_27_0_fib_NE(x1, x2, x3) → Cond_27_0_fib_NE(x1, x3)
Filtered unneeded arguments:
Cond_87_1_fib_InvokeMethod1(x1, x2, x3, x4) → Cond_87_1_fib_InvokeMethod1(x1, x2, x3)
Cond_374_1_fib_InvokeMethod2(x1, x2, x3, x4) → Cond_374_1_fib_InvokeMethod2(x1, x2, x3)
Combined rules. Obtained 3 rules for P and 4 rules for R.
Finished conversion. Obtained 3 rules for P and 4 rules for R. System has predefined symbols.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((x0[0] > 0 && !(x0[0] = 1) →* TRUE)∧(x0[0] →* x0[1]))
(0) -> (2), if ((x0[0] > 0 && !(x0[0] = 1) →* TRUE)∧(x0[0] →* x0[2]))
(1) -> (3), if ((27_0_fib_NE(x0[1] - 1) →* 63_0_fib_Return)∧(x0[1] →* x2[3])∧(x0[1] - 1 →* 1))
(1) -> (5), if ((27_0_fib_NE(x0[1] - 1) →* 390_0_fib_Return(x0[5]))∧(x0[1] →* x1[5])∧(x0[1] - 1 →* x2[5]))
(2) -> (0), if ((x0[2] - 1 →* x0[0]))
(3) -> (4), if ((x2[3] > 0 →* TRUE)∧(x2[3] →* x2[4]))
(4) -> (0), if ((x2[4] - 2 →* x0[0]))
(5) -> (6), if ((x1[5] > 0 →* TRUE)∧(390_0_fib_Return(x0[5]) →* 390_0_fib_Return(x0[6]))∧(x1[5] →* x1[6])∧(x2[5] →* x2[6]))
(6) -> (0), if ((x1[6] - 2 →* x0[0]))
(1) (&&(>(x0[0], 0), !(=(x0[0], 1)))=TRUE∧x0[0]=x0[1] ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(2) (>(x0[0], 0)=TRUE∧<(x0[0], 1)=TRUE ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(3) (>(x0[0], 0)=TRUE∧>(x0[0], 1)=TRUE ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(4) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(5) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(6) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(7) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(8) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(9) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(10) (x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(11) ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(6)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(12) (&&(>(x0[0], 0), !(=(x0[0], 1)))=TRUE∧x0[0]=x0[2] ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(13) (>(x0[0], 0)=TRUE∧<(x0[0], 1)=TRUE ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(14) (>(x0[0], 0)=TRUE∧>(x0[0], 1)=TRUE ⇒ 27_0_FIB_NE(x0[0])≥NonInfC∧27_0_FIB_NE(x0[0])≥COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])∧(UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥))
(15) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(16) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(17) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(18) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(19) (x0[0] + [-1] ≥ 0∧[-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(20) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(2)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(21) (x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(4)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(22) ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])), ≥)∧[(6)bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x0[0] ≥ 0∧[(-1)bso_30] ≥ 0)
(23) (COND_27_0_FIB_NE(TRUE, x0[1])≥NonInfC∧COND_27_0_FIB_NE(TRUE, x0[1])≥87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))∧(UIncreasing(87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))), ≥))
(24) ((UIncreasing(87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))), ≥)∧[2 + (-1)bso_32] ≥ 0)
(25) ((UIncreasing(87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))), ≥)∧[2 + (-1)bso_32] ≥ 0)
(26) ((UIncreasing(87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))), ≥)∧[2 + (-1)bso_32] ≥ 0)
(27) ((UIncreasing(87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))), ≥)∧0 = 0∧[2 + (-1)bso_32] ≥ 0)
(28) (COND_27_0_FIB_NE(TRUE, x0[2])≥NonInfC∧COND_27_0_FIB_NE(TRUE, x0[2])≥27_0_FIB_NE(-(x0[2], 1))∧(UIncreasing(27_0_FIB_NE(-(x0[2], 1))), ≥))
(29) ((UIncreasing(27_0_FIB_NE(-(x0[2], 1))), ≥)∧[2 + (-1)bso_34] ≥ 0)
(30) ((UIncreasing(27_0_FIB_NE(-(x0[2], 1))), ≥)∧[2 + (-1)bso_34] ≥ 0)
(31) ((UIncreasing(27_0_FIB_NE(-(x0[2], 1))), ≥)∧[2 + (-1)bso_34] ≥ 0)
(32) ((UIncreasing(27_0_FIB_NE(-(x0[2], 1))), ≥)∧0 = 0∧[2 + (-1)bso_34] ≥ 0)
(33) (>(x2[3], 0)=TRUE∧x2[3]=x2[4] ⇒ 87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1)≥NonInfC∧87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1)≥COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)∧(UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥))
(34) (>(x2[3], 0)=TRUE ⇒ 87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1)≥NonInfC∧87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1)≥COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)∧(UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥))
(35) (x2[3] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥)∧[(-1)Bound*bni_35] + [(2)bni_35]x2[3] ≥ 0∧[1 + (-1)bso_36] ≥ 0)
(36) (x2[3] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥)∧[(-1)Bound*bni_35] + [(2)bni_35]x2[3] ≥ 0∧[1 + (-1)bso_36] ≥ 0)
(37) (x2[3] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥)∧[(-1)Bound*bni_35] + [(2)bni_35]x2[3] ≥ 0∧[1 + (-1)bso_36] ≥ 0)
(38) (x2[3] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)), ≥)∧[(-1)Bound*bni_35 + (2)bni_35] + [(2)bni_35]x2[3] ≥ 0∧[1 + (-1)bso_36] ≥ 0)
(39) (COND_87_1_FIB_INVOKEMETHOD(TRUE, 63_0_fib_Return, x2[4], 1)≥NonInfC∧COND_87_1_FIB_INVOKEMETHOD(TRUE, 63_0_fib_Return, x2[4], 1)≥27_0_FIB_NE(-(x2[4], 2))∧(UIncreasing(27_0_FIB_NE(-(x2[4], 2))), ≥))
(40) ((UIncreasing(27_0_FIB_NE(-(x2[4], 2))), ≥)∧[1 + (-1)bso_38] ≥ 0)
(41) ((UIncreasing(27_0_FIB_NE(-(x2[4], 2))), ≥)∧[1 + (-1)bso_38] ≥ 0)
(42) ((UIncreasing(27_0_FIB_NE(-(x2[4], 2))), ≥)∧[1 + (-1)bso_38] ≥ 0)
(43) ((UIncreasing(27_0_FIB_NE(-(x2[4], 2))), ≥)∧0 = 0∧[1 + (-1)bso_38] ≥ 0)
(44) (>(x1[5], 0)=TRUE∧390_0_fib_Return(x0[5])=390_0_fib_Return(x0[6])∧x1[5]=x1[6]∧x2[5]=x2[6] ⇒ 87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5])≥NonInfC∧87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5])≥COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])∧(UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥))
(45) (>(x1[5], 0)=TRUE ⇒ 87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5])≥NonInfC∧87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5])≥COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])∧(UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥))
(46) (x1[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥)∧[(-1)Bound*bni_39] + [(2)bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)
(47) (x1[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥)∧[(-1)Bound*bni_39] + [(2)bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)
(48) (x1[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥)∧[(-1)Bound*bni_39] + [(2)bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)
(49) (x1[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥)∧0 = 0∧0 = 0∧[(-1)Bound*bni_39] + [(2)bni_39]x1[5] ≥ 0∧0 = 0∧0 = 0∧[1 + (-1)bso_40] ≥ 0)
(50) (x1[5] ≥ 0 ⇒ (UIncreasing(COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])), ≥)∧0 = 0∧0 = 0∧[(-1)Bound*bni_39 + (2)bni_39] + [(2)bni_39]x1[5] ≥ 0∧0 = 0∧0 = 0∧[1 + (-1)bso_40] ≥ 0)
(51) (COND_87_1_FIB_INVOKEMETHOD1(TRUE, 390_0_fib_Return(x0[6]), x1[6], x2[6])≥NonInfC∧COND_87_1_FIB_INVOKEMETHOD1(TRUE, 390_0_fib_Return(x0[6]), x1[6], x2[6])≥27_0_FIB_NE(-(x1[6], 2))∧(UIncreasing(27_0_FIB_NE(-(x1[6], 2))), ≥))
(52) ((UIncreasing(27_0_FIB_NE(-(x1[6], 2))), ≥)∧[1 + (-1)bso_42] ≥ 0)
(53) ((UIncreasing(27_0_FIB_NE(-(x1[6], 2))), ≥)∧[1 + (-1)bso_42] ≥ 0)
(54) ((UIncreasing(27_0_FIB_NE(-(x1[6], 2))), ≥)∧[1 + (-1)bso_42] ≥ 0)
(55) ((UIncreasing(27_0_FIB_NE(-(x1[6], 2))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_42] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(27_0_fib_NE(x1)) = [-1] + x1
POL(0) = 0
POL(39_0_fib_Return) = [2]
POL(374_1_fib_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_374_1_fib_InvokeMethod(x1, x2, x3, x4)) = [-1] + [-1]x3
POL(>(x1, x2)) = [-1]
POL(390_0_fib_Return(x1)) = x1
POL(+(x1, x2)) = x1 + x2
POL(63_0_fib_Return) = [-1]
POL(1) = [1]
POL(Cond_374_1_fib_InvokeMethod1(x1, x2, x3, x4)) = [-1] + [-1]x3
POL(&&(x1, x2)) = [-1]
POL(Cond_374_1_fib_InvokeMethod2(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2
POL(27_0_FIB_NE(x1)) = [2] + [2]x1
POL(COND_27_0_FIB_NE(x1, x2)) = [2] + [2]x2
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]
POL(87_1_FIB_INVOKEMETHOD(x1, x2, x3)) = [2]x2
POL(-(x1, x2)) = x1 + [-1]x2
POL(COND_87_1_FIB_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [2]x3
POL(2) = [2]
POL(COND_87_1_FIB_INVOKEMETHOD1(x1, x2, x3, x4)) = [-1] + [2]x3
COND_27_0_FIB_NE(TRUE, x0[1]) → 87_1_FIB_INVOKEMETHOD(27_0_fib_NE(-(x0[1], 1)), x0[1], -(x0[1], 1))
COND_27_0_FIB_NE(TRUE, x0[2]) → 27_0_FIB_NE(-(x0[2], 1))
87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1) → COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)
COND_87_1_FIB_INVOKEMETHOD(TRUE, 63_0_fib_Return, x2[4], 1) → 27_0_FIB_NE(-(x2[4], 2))
87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5]) → COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])
COND_87_1_FIB_INVOKEMETHOD1(TRUE, 390_0_fib_Return(x0[6]), x1[6], x2[6]) → 27_0_FIB_NE(-(x1[6], 2))
27_0_FIB_NE(x0[0]) → COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])
87_1_FIB_INVOKEMETHOD(63_0_fib_Return, x2[3], 1) → COND_87_1_FIB_INVOKEMETHOD(>(x2[3], 0), 63_0_fib_Return, x2[3], 1)
87_1_FIB_INVOKEMETHOD(390_0_fib_Return(x0[5]), x1[5], x2[5]) → COND_87_1_FIB_INVOKEMETHOD1(>(x1[5], 0), 390_0_fib_Return(x0[5]), x1[5], x2[5])
27_0_FIB_NE(x0[0]) → COND_27_0_FIB_NE(&&(>(x0[0], 0), !(=(x0[0], 1))), x0[0])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean